package com.db.dao;

import java.util.ArrayList;
import java.util.Locale;

import utils.FalhasCategorias;
import utils.db.DatabaseStarter;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class FalhasCategoriasDAO {
	
	private DatabaseStarter db;
	private static final String TABLE_FALHAS_CATEGORIAS = "ucopa_falhas_categorias";
	private String lang = Locale.getDefault().getLanguage().toString();
	
	private static final String CREATE_TABLE_FALHAS_CATEGORIAS = "CREATE TABLE "
            + TABLE_FALHAS_CATEGORIAS + "(" + "id" + " INTEGER PRIMARY KEY," +
            "parent_id" + " INTEGER," + "left" + " INTEGER," + "rgt" + " INTEGER," + "title"
            + " TEXT,title_en TEXT,exemplos TEXT,exemplos_en TEXT)";
	
	public FalhasCategoriasDAO(DatabaseStarter db) {
		this.db = db;
	}
	
	public void insereFalhasCategorias(FalhasCategorias flcategorias) {
		 SQLiteDatabase database = this.db.getWritableDatabase();
		 ContentValues values = new ContentValues();
		 
		 values.put("id", flcategorias.getId());
	     values.put("left", flcategorias.getLeft());
	     values.put("rgt", flcategorias.getRight());
	     values.put("parent_id", flcategorias.getParent_id());
	     values.put("title", flcategorias.getTitle());
	     values.put("exemplos", flcategorias.getExemplos());
	     values.put("title_en", flcategorias.getTitleEn());
	     values.put("exemplos_en", flcategorias.getExemplosEn());
		 
	     database.insert(TABLE_FALHAS_CATEGORIAS, null, values);
	}
	
	public ArrayList<FalhasCategorias> retornaTodasAsCategorias () {
		ArrayList<FalhasCategorias> falhasCategorias = new ArrayList<FalhasCategorias>();
		String selectQuery = "SELECT  * FROM " + TABLE_FALHAS_CATEGORIAS;
		 
        SQLiteDatabase database = this.db.getReadableDatabase();
        Cursor c = database.rawQuery(selectQuery, null);
 
        // looping through all rows and adding to list
        if (c.moveToFirst()) {
            do {
                FalhasCategorias flcategorias = new FalhasCategorias();
                flcategorias.setId(c.getInt((c.getColumnIndex("id"))));
                flcategorias.setParent_id(c.getInt((c.getColumnIndex("parent_id"))));
                flcategorias.setRight(c.getInt((c.getColumnIndex("rgt"))));
                flcategorias.setLeft(c.getInt((c.getColumnIndex("left"))));
                if (lang.equalsIgnoreCase("en")){
                	flcategorias.setTitle(c.getString((c.getColumnIndex("title_en"))));
                	flcategorias.setExemplos(c.getString((c.getColumnIndex("exemplos_en"))));
                }else{
                	flcategorias.setTitle(c.getString((c.getColumnIndex("title"))));
                	flcategorias.setExemplos(c.getString((c.getColumnIndex("exemplos"))));
            	}
                
                // adding to todo list
                falhasCategorias.add(flcategorias);
            } while (c.moveToNext());
        }
 
        return falhasCategorias;
	}
	
	public void deletaTodos() {
		SQLiteDatabase database = this.db.getWritableDatabase();
		database.execSQL("DROP TABLE IF EXISTS " + TABLE_FALHAS_CATEGORIAS);
		database.execSQL(CREATE_TABLE_FALHAS_CATEGORIAS);
	}
}